home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-04-04 | 19.2 KB | 564 lines |
- 10 CLEAR 800
- 20 ' PROGRAM INVEST1.BAS
- 180 CLS
- 190 PRINT TAB(15)"================================"
- 200 PRINT TAB(18)"INVESTMENT ANALYSIS PROGRAM"
- 210 PRINT TAB(18)"INCOME PRODUCING INVESTMENTS"
- 220 PRINT TAB(15)"================================"
- 230 FOR HOLD=1 TO 1000
- 231 NEXT
- 270 DEFINT K,M,N
- 280 I=0:J=0:K=0:M=0:N=0:P=0:PV=0:PI=0:SP=0:CS=0
- 290 D$="$$#,######.##"
- 300 PM=3
- 310 I9=25 ' max. # of items to be read in
- 320 IP=0:PP=0:A=0:B=0:V=0:SI=0:F=1:FL=0:TC=0
- 330 DIM F$(30), V(30), DP(4,15), D(30), SF(30), PV(4,3), PI(4,3)
- 370 DIM A1(30), A2(30), E1(30), E2(30), EX(30), T1(30),T2(30)
- 400 DIM B1(30), B2(30), CF(30), DF(30), DI(30), DY(30), IP(30), IZ(30), TC(30)
- 460 GOTO 580
- 470 ' sub her for speed, todo loan calculations
- 490 FOR J1=1 TO NP
- 500 IP=I1*A
- 510 IP=INT(IP*100)/100
- 520 SI=SI+IP
- 522 PP=P-IP
- 530 A=A-PP
- 540 B=B+PP
- 550 NEXT J1
- 560 RETURN
- 570 ' transfer to initialization
- 580 ' transfer to initialization
- 590 GOSUB 6200
- 610 PV=0:SI=0:B=0:A=0:DI=0:PI=0 ' initialize counters for sums
- 620 TC=0:F=0:FL=0:F1=0
- 630 SP=0:CS=0
- 650 ' initialize all arrays to 0
- 660 CLS
- 670 PRINT TAB(30)"INITIALIZE EVERYTHING"
- 680 FOR I=1 TO 30
- 690 PRINTI;
- 700 D(I)=0:CF(I)=0:EX(I)=0:E1(I)=0:E2(I)=0:TC(I)=0:T1(I)=0:T2(I)=0:SF(I)=0
- 790 NEXT I
- 800 CLS
- 810 PRINT"NAME OF INVESTMENT IS -----";NI$
- 820 INPUT"IF NEW NAME, ENTER IT -";NI$
- 830 GOSUB 5160 ' TRANSFER TO DATA INPUT
- 840 CLS
- 850 PRINT TAB(10)"=================================================="
- 860 PRINT TAB(13)"DO YOU WANT TO TAKE INVESTMENT TAX CREDIT?"
- 870 PRINT TAB(10)"=================================================="
- 880 Y$=INKEY$:IF Y$="" THEN 880 ELSE IF INSTR("NSns",Y$) =0 THEN PRINT"pLEASE ANSWER ONLY `Y' OR `N'.:GOTO 860
- 890 IF Y$="Y" OR Y$ = "y" THEN TC=1 ELSE TC=0
- 900 CLS
- 910 ' NOW READ IN DEPRECIATION TABLE
- 920 RESTORE
- 930 CLS
- 940 PRINT TAB(30)"READING DEPRECIATION TABLE"
- 950 GOSUB 5910
- 960 GOSUB 1650
- 970 ' CALC. TAX CREDIT---IT IS ALLOWED ON 100% OF 5 YEAR AND MORE PROPERTY
- 980 ' AND ON 60% OF 3 YEAR PROPERTY
- 1000 TC=TC*0.1*(V(20)+V(21)+0.6*V(19))
- 1010 ' DOES YEARLY CASH FLOWS
- 1020 KD=0
- 1030 CLS
- 1040 PRINT TAB(25)"NOW WORKING ON YEARLY CASH FLOWS"
- 1060 IF V(6)=0 THEN F=1 ELSE F=0
- 1080 '
- 1090 FOR K=1 TO V(18)
- 1100 PRINTK
- 1110 IF (K-V(6))>0 THEN KA= 1 ELSE KA=0
- 1120 IF F=1 THEN 1180
- 1130 IF FL=-1 THEN F=1:F1=F:GOTO 1180
- 1140 IF V(6) > K THEN F=O:GOTO 1180 'NO INCOME YET
- 1150 F=K-V(6)
- 1160 F1=0
- 1170 FL=1
- 1180 E1(K)=F*V(11)*(1+V(13)/100)^(K-1)
- 1190 EX(K)=F*V(12)*(1+V(14)/100)^K
- 1200 KD=KD+KA
- 1210 IF KD=0 THEN 1240
- 1220 IF KD>15 THEN 1240 ' BYPASS DEPRECIATION
- 1230 D(K)=DP(1,KD)*V(19)+V(20)*DP(2,KD)+V(21)*DP(3,KD)+V(22)*DP(4,KD)+V(23)/15
- 1240 E2(K)=E1(K)-D(K)-EX(K)-IP(K)-IZ(K)
- 1250 IF TL=0 AND K>1 THEN 1420 ' check for loss to carry forward
- 1260 IF E2(K) <0 THEN TL=TL+(-1*E2(K)):T1(K)=0:T2(K)=0:GOTO 1530
- 1270 IF E2(K) > TL THEN 1300
- 1280 TL=TL-(-1*E2(K)):T1(K)=0:T2(K)=0
- 1290 GOTO 1530
- 1300 E2=E2(K)-TL:TL=0
- 1310 T2(K)= V(16)/100*E2 ' STATE TAX PAID
- 1320 T1(K)=V(15)/100*(E2-T2(K)) ' FED TAX PAID
- 1330 IF TC=0 THEN 1530
- 1340 IF TC< T1(K) THEN 1380 ELSE TC(K) = T1(K)
- 1350 TC=TC-T1(K)
- 1360 T1(K)=0
- 1370 GOTO 1530
- 1380 TC(K)=TC
- 1390 T1(K)=T1(K)-TC
- 1400 TC=0
- 1410 GOTO 1530
- 1420 IF E2(K)>0 THEN T2(K) = V(16)/100*E2(K) ELSE T2(K)=0
- 1430 IF E2(K) =>0 THEN T1(K)=(E2(K)-T2(K))*V(15)/100 ELSE T1(K)=0
- 1440 IF E2(K)<0 THEN TL= -1*E2(K): GOTO 1530
- 1450 IF TC=0 THEN 1530
- 1460 IF TC < T1(K) THEN 1500 ELSE TC(K)= T1(K)
- 1470 TC =TC - T1(K)
- 1480 T1(K)=0
- 1490 GOTO 1530
- 1500 TC(K)=TC
- 1510 T1(K)=T1(K) -TC
- 1520 TC=0
- 1530 CF(K)=E2(K)-T1(K)-T2(K)+D(K) ' cash flow for year k
- 1540 DF(K)=CF(K)*(1+V(17)/100)^-K
- 1550 DI(K)=CF(K)*(1+V(25)/100)^-K
- 1560 DY(K)= DI(K)*(1+V(17)/100)^-K
- 1570 SF(K)= E1(K)-EX(K)-T1(K)-T2(K)-IP(K)-IZ(K)-A1(K)-A2(K) ' spendable cash flow
- 1580 IF SF(K)<0 THEN SP=SP+(-1)*SF(K):CS=CS+1
- 1600 PV=DF(K) + PV
- 1610 PI=DY(K)+PI
- 1612 SF=SF(K)+SF
- 1620 NEXT K
- 1630 GOSUB 2240 ' print it out
- 1640 END
- 1650 ' TO TAKE CARE OF LOANS
- 1660 CLS
- 1670 PRINT TAB(25)"NOW WORKING ON FIRST LOAN"
- 1690 IF V(2)=0 THEN 1890 ' TRANSFER IF NO 1ST LOAN
- 1700 I1=V(3)/100/V(5) ' INTEREST PER PEROID
- 1710 I1=V(3)/100/V(5) ' INTEREST PER PEROID
- 1720 S=0
- 1730 S2=0
- 1740 A=V(2)
- 1750 V=(I1+1)^(V(4)*V(5))
- 1760 P=V(2)*(I1*V)/(V-1)
- 1770 P= INT((100*P)/100)
- 1780 NP=V(5)
- 1790 J2=1
- 1800 GOSUB 470
- 1810 A1(J2)=B
- 1820 IP(J2)=SI
- 1830 IF J2=V(4) THEN 1950
- 1840 PRINT J2,
- 1850 SI=0
- 1860 B=0
- 1870 J2=J2+1
- 1880 GOTO 1800
- 1890 ' no 1st loan
- 1900 IF IP(1)=0 THEN 1950 ' check to see if arrays zerroed
- 1910 FOR JZ = 1 TO 30
- 1920 IP(JZ)=0
- 1930 A1(JZ)=0
- 1940 NEXT JZ
- 1950 ' now do 2nd loan
- 1960 CLS
- 1970 PRINT TAB(25)"NOW WORKING ON THE 2ND. LOAN"
- 1980 IF V(7)=0 THEN 2170 ' TRANSFER IF NO 2ND. LOAN
- 1990 A=V(7)
- 2000 SI=0
- 2010 B=0
- 2020 I1=V(8)/100/V(10)
- 2030 V=(I1+1)^(V(9)*V(10))
- 2040 P=V(7)*(I1*V)/(V-1)
- 2050 P= INT(P*100)/100
- 2060 NP=V(10)
- 2070 J2=1
- 2080 PRINT J2,
- 2090 GOSUB 470
- 2100 A2(J2)=B
- 2110 IZ(J2)=SI
- 2120 IF J2=V(9) THEN RETURN
- 2130 SI=0
- 2140 B=0
- 2150 J2=J2+1
- 2160 GOTO 2080
- 2170 ' here because no 2nd. loan
- 2180 IF IZ(1) AND A2(1)=0 THEN RETURN
- 2190 FOR JZ=1 TO 30
- 2200 IZ(JZ)=0
- 2210 A2(JZ)=0
- 2220 NEXT JZ
- 2230 RETURN
- 2240 ' NOW PRINT OUT RESULTS
- 2250 CLS
- 2260 PRINT TAB(30)"RESULTS OF CALCULATIONS :"
- 2270 PRINT TAB(36)"SUMMARY"
- 2280 PRINT TAB(28)"==========================="
- 2290 PRINT USING"PRESENT VALUE OF CASH FLOW -----$$#,###,###.##";PV
- 2300 PRINT USING"PRESENT VALUE CONSTANT YEAR ----$$#,###,###.##";PI
- 2310 IF PV<V(1) THEN PRINT" NOTE THAT PRESENT VALUE IS LESS THEN INVESTMENT!"
- 2320 PRINT TAB(10)"=============================================================="
- 2330 PRINT"DO YOU WANT TO SEE YEARLY DETAILS, `Y' OR `N' ?"
- 2340 Y$=INKEY$:IF Y$="" THEN 2340 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.":GOTO 2330
- 2350 IF Y$="N" OR Y$="n" THEN 2550
- 2360 FOR K=1 TO V(18)
- 2370 CLS
- 2380 PRINT USING" INCOME ---------------$$#,######.##";E1(K)
- 2390 PRINT USING" EXPENSES -------------$$#,######.##";EX(K)
- 2400 PRINT USING" DEPRECIATION ---------$$#,######.##";D(K)
- 2410 PRINT USING" INTEREST(1ST. LOAN) --$$#,######.##";IP(K)
- 2420 PRINT USING" INTEREST(2ND. LOAN) --$$#,######.##";IZ(K)
- 2430 PRINT USING" PRINCIPAL(1ST. LOAN) -$$#,######.##";A1(K)
- 2440 PRINT USING" PRINCIPAL(2ND.LOAN) --$$#,######.##";A2(K)
- 2450 PRINT USING" TAXABLE INCOME -------$$#,######.##";E1(K)-EX(K)-D(K)-IP(K)-IZ(K)
- 2460 PRINT USING" STATE TAXES PAID -----$$#,######.##";T2(K)
- 2470 PRINT USING" FEDERAL TAX PAID -----$$#,######.##";T1(K)
- 2480 PRINT USING" AFTER TAX CASH FLOW --$$#,######.##";CF(K)
- 2490 PRINT USING" DISCOUNTED CASH FLOW -$$#,######.##";DY(K)
- 2500 PRINT USING" COSTANT DOLLAR CASH --$$#,######.##";DY(K)
- 2510 PRINT USING" SPENDABLE CASH FLOW --$$#,######.##";SF(K)
- 2520 PRINT:PRINT"THIS IS FOR YEAR "K" PRESS ANY KEY FOR NEXT YEAR."
- 2530 Y$=INKEY$:IF Y$="" THEN 2530
- 2540 NEXT K
- 2550 CLS
- 2560 PRINT TAB(15)"DO YOU WANT HARD COPY, `Y' OR `N'.?"
- 2570 Y$=INKEY$:IF Y$="" THEN 2570 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY `Y' OR `N'.":GOTO 2560
- 2580 IF Y$="Y" OR Y$="y" THEN GOSUB 2690
- 2590 CLS
- 2600 PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO RUN A SENSITIVITY ANALYSIS,`Y' OR `N'?"
- 2610 Y$=INKEY$:IF Y$="" THEN 2610 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY `Y' OR `N'.":GOTO 2610
- 2620 IF Y$="Y" OR Y$="y" THEN GOSUB 3210
- 2630 PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO RUN ANOTHER CASE, `Y' OR `N'."
- 2640 Y$=INKEY$:IF Y$="" THEN 2640 ELSE IF INSTR("YNyn",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y'or `N'."
- 2650 IF Y$="Y" OR Y$="y" THEN 610
- 2660 PRINT TAB(34)"SESSION OVER"
- 2680 END
- 2690 PRINT TAB(20)"HARD COPY ROUTINE. PLEASE BE SURE PRINTER IS ON."
- 2692 PRINT:PRINT:PRINT" IF ON, THEN HIT ANY KEY."
- 2694 YY$= INKEY$:IF YY$="" THEN GOTO 2694 ELSE 2700
- 2700 LPRINT TAB(20)"RESULTS OF INVESTMENT ANALYSIS PROGRAM"
- 2710 LPRINT " ":LPRINT TAB(24)"FOR INVESTMENT ";NI$
- 2720 LPRINT " ":LPRINT " "
- 2730 LPRINT TAB(30)"INPUT DATA SUMMARY"
- 2740 FOR I = 1 TO 25
- 2750 LPRINT TAB(10);
- 2760 LPRINT USING F$(I);V(I)
- 2770 NEXT I
- 2780 LPRINT " ":LPRINT STRING$(80,"=")
- 2790 LPRINT " ":LPRINT " ":LPRINT" ":LPRINT" ":LPRINT" ":LPRINT" ":LPRINT" "
- 2800 LPRINT TAB(30)"SUMMARY OF RESULTS":LPRINT " ":LPRINT " "
- 2810 LPRINT TAB(10) USING"CURRENT YEAR DOLLARS PRESENT VALUE OF CASH FLOWS -----$$#,######.##";PV
- 2820 LPRINT TAB(10) USING"CONSTANT YEAR DOLLAR PRESENT VALUE OF CASH FLOWS -----$$#,######.##";PI
- 2850 LPRINT TAB(10) USING"NET PRESENT VALUE (DISCOUNTED CASH COSTS) IS ---------$$#,######.##";PV-V(1)
- 2870 LPRINT TAB(10) USING"CONSTANT YEAR NET PRESENT VALUE ----------------------$$#,######.##";PI-V(1)
- 2872 LPRINT TAB(10) USING"spendable cash flow over the ## years ----------------$$#,######.##";V(18),SF
- 2890 IF V(1) > PV THEN LPRINT TAB(12) USING"YOU LOST $$#,######.## IN PRESENT VALUE.";V(1)-PV
- 2900 IF V(1) > PI THEN LPRINT TAB(12) USING"YOU LOST $$#,######.## IN PURCHASING POWER.";V(1)-PI
- 2910 LPRINT " ":LPRINT STRING$(80,"=")
- 2912 PRINT:PRINT:PRINT:PRINT"DO YOU WANT TO PRINT OUT THE YEARLY OPERATIONAL RESULTS?"
- 2913 Y$=INKEY$:IF Y$="" THEN 2913 ELSE IF INSTR ("ynYN",Y$) = 0 THEN PRINT "PLEASE ENTER ONLY A `Y' OR A `N'.":GOTO 2912
- 2914 IF Y$="Y" OR Y$="y" THEN GOTO 2930 ELSE RETURN
- 2930 FOR QQ=1 TO 20
- 2931 LPRINT" "
- 2932 NEXT QQ
- 2940 LPRINT TAB(25)"RESULTS OF EACH YEARS OPERATION"
- 2950 FOR I = 1 TO V(18)
- 2960 LPRINT" ":LPRINT" ":LPRINT TAB(30)"RESULTS FOR YEAR"I
- 2970 LPRINT" ":LPRINT STRING$(80,"="):LPRINT" "
- 2980 LPRINT TAB(10) USING"GROSS INCOME ---------------------------------$$#,######.##";E1(I)
- 2990 LPRINT TAB(10) USING"EXPENSES -------------------------------------$$#,######.##";EX(I)
- 3000 LPRINT TAB(10) USING"DEPRECIATION ---------------------------------$$#,######.##";D(I)
- 3010 LPRINT TAB(10) USING"INTEREST FIRST LOAN --------------------------$$#,######.##";IP(I)
- 3020 LPRINT TAB(10) USING"PRINCIPAL FIRST LOAN -------------------------$$#,######.##";A1(I)
- 3030 LPRINT TAB(10) USING"INTEREST SECOND LOAN -------------------------$$#,######.##";IZ(I)
- 3040 LPRINT TAB(10) USING"PRINCIPAL SECOND LOAN ------------------------$$#,######.##";A2(I)
- 3050 LPRINT TAB(10) USING"TAXABLE INCOME -------------------------------$$#,######.##";E2(I)
- 3060 LPRINT TAB(10) USING"STATE TAX PAID -------------------------------$$#,######.##";T2(I)
- 3070 LPRINT TAB(10) USING"INVESTMENT TAX CREDIT TAKEN ------------------$$#,######.##";TC(I)
- 3080 LPRINT TAB(10) USING"FEDERAL TAX PAID -----------------------------$$#,######.##";T1(I)
- 3090 LPRINT TAB(10) USING"AFTER TAX CASH FLOW --------------------------$$#,######.##";CF(I)
- 3100 LPRINT TAB(10) USING"CONSTANT DOLLAR CASH FLOW --------------------$$#,######.##";DI(I)
- 3110 LPRINT TAB(10) USING"DISCOUNTED CURRENT YEAR CASH FLOW ------------$$#,######.##";DI(I)
- 3120 LPRINT TAB(10) USING"DISCOUNTED CONSTANT YEAR CASH FLOW -----------$$#,######.##";DY(I)
- 3130 LPRINT TAB(10) USING"SPENDABLE CASH FLOW --------------------------$$#,######.##";SF(I)
- 3140 IF SF(I)<0 THEN LPRINT" ":LPRINT TAB(10)"**** NOTE THAT SPENDABLE CASH IS NEGATIVE, YOU WILL HAVE TO BORROW ****"
- 3150 LPRINT" ":LPRINT" ":LPRINT STRING$(80,"=")
- 3160 IF INT(I/2)-I/2= 0 THEN FOR QQ= 1 TO 15 ELSE 3180
- 3161 LPRINT " "
- 3162 NEXT QQ
- 3180 NEXT I
- 3190 LPRINT STRING$(80,"=")
- 3200 RETURN
- 3210 ' SUB FOR SENSITIVITY ANALYSIS
- 3220 CLS
- 3230 PRINT TAB(20)"YOU HAVE SELECTED SENSITIVITY ANALYSIS."
- 3240 PRINT TAB(10)"PLEASE NOTE THAT ONLY A FEW ITEMS ARE CHECKED:"
- 3250 PRINT:PRINT TAB(15)"1-ESTIMATED INCOME, +/- 10% VARIATION."
- 3260 PRINT TAB(15)"2-ESTIMATED EXPENSE, +/- 10% VARIATION."
- 3270 PRINT TAB(15)"3-ESCALATION O0F INCOME, +/- 10%."
- 3280 PRINT TAB(15)"4-ESCLATION OF EXPENSE, +/- 10%."
- 3300 PRINT:PRINT"THE LONGER THE LIFE OF THE INVESTMENT, THE LONGER THE CALCULATIONS TAKE."
- 3320 PRINT
- 3330 PRINT"DO YOU WANT AN INVESTMENT TAX CREDIT,`Y' OR `N'?
- 3340 Y$=INKEY$:IF Y$="" THEN 3340 ELSE IF INSTR("ynYN",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.:GOTO 3330
- 3350 IF Y$="Y" OR Y$="y" THEN T1=1 ELSE T1=0
- 3360 PRINT TAB(35)"START BY VARYING INCOME"
- 3370 PV(1,1)=PV
- 3380 PI(1,1)=PI
- 3390 TEMP=V(11)
- 3400 V(11)=TEMP*1.1
- 3410 GOSUB 4010
- 3420 PV(1,2)=PV
- 3430 PI(1,2)=PI
- 3440 V(11)=TEMP*0.9
- 3450 GOSUB 4010
- 3460 PV(1,3)=PV
- 3470 PI(1,3)=PI
- 3480 V(11)=TEMP
- 3490 TEMP=V(12)
- 3500 V(12)=TEMP*1.1
- 3510 GOSUB 4010
- 3520 PV(2,2)=PV
- 3530 PI(2,2)=PI
- 3540 V(12)=0.9*TEMP
- 3550 GOSUB 4010
- 3560 PV(2,3)=PV
- 3570 PI(2,3)=PI
- 3580 V(12)=TEMP
- 3590 TEMP=V(13) ' ESCALATOR FOR INCOME
- 3600 V(13)=TEMP*1.1
- 3610 GOSUB 4010
- 3620 PV(3,2)=PV
- 3630 PI(3,2)=PI
- 3640 V(13)=TEMP*0.9
- 3650 GOSUB 4010
- 3660 PV(3,3)=PV
- 3670 PI(3,3)=PI
- 3680 V(13)=TEMP
- 3690 TEMP=V(14)
- 3700 V(14)=1.1*TEMP
- 3710 GOSUB 4010
- 3720 PV(4,2)=PV
- 3730 PI(4,2)=PI
- 3740 V(14)=0.9*TEMP
- 3750 GOSUB 4010
- 3760 PV(4,3)=PV
- 3770 PI(4,3)=PI
- 3780 V(14)=TEMP
- 3790 CLS
- 3800 PRINT TAB(30)"SENSITIVITY ANALYSIS IS COMPLETE"
- 3810 PRINT:PRINT"THE RESULTS ARE :"
- 3820 PRINT TAB(5)"1-A 10% INCREASE IN INCOME CHAMGES THE PRESENT VALUE";
- 3830 PRINT USING" FROM $$#,######.## TO $$#,######.##";PV(1,1),PV(1,2)
- 3860 PRINT TAB(5) USING"2-A 10% DECREASE IN INCOME CHANGES THE PRESENT VALUE TO $$#,######.##";PV(1,3)
- 3880 PRINT TAB(5) USING"3-A 10% INCREASE IN EXPENSES CHANGES PRESENT VALUE TO $$#,######.##";PV(2,2)
- 3900 PRINT TAB(5) USING"4-A 10% DECREASE IN EXPENSES CHANGES PRESENT VALUE TO $$#,######.##";PV(2,3)
- 3920 PRINT TAB(5) USING"5-A 10% INCREASE IN THE GROWTH RATE OF INCOME CHANGES THE PRESENT VALUE TO $$#,######.##";PV(3,2)
- 3940 PRINT TAB(5) USING"6-A 10% DECREASE IN INCOME GROWTH CHANGES THE PRESENT VALUE TO $$#,######.##";PV(3,3)
- 3950 PRINT TAB(5) USING"7-A 10% INCREASE IN EXPENSE GROWTH GIVES $$#,######.##";PV(4,2)
- 3960 PRINT TAB(5) USING"8-A 10% DECREASE IN EXPENSE GROWTH GIVES $$#,######.##";PV(4,2)
- 3970 PRINT:PRINT" DO YOU WANT HARD COPY, `Y' OR `N'."
- 3980 Y$=INKEY$:IF Y$="" THEN 3980 ELSE IF INSTR("ynYN",Y$)=0 THEN PRINT"PLEASE ENTER ONLY A `Y' OR `N'.":GOTO3970
- 3990 IF Y$="Y" OR Y$="y" THEN GOSUB 4690
- 4000 RETURN
- 4010 '
- 4020 ' CALCULATE INVESTMENT TAX CREDIT
- 4050 TC=T1*0.1*(V(20)+V(21)=0.6*V(19))
- 4060 ' ALL LOANS TAKEN CARE OF NOW LETS DO YEARLY CASH FLOWS
- 4070 CLS
- 4080 PRINT TAB(25)"NOW WORKING ON YEARLY CASH FLOWS"
- 4100 IF V(6)=0 THEN F=1 ELSE F=0
- 4110 IF F=0 THEN F1 =0 ELSE F1=1
- 4130 PV=0:DY=0:TL=0:SP=0:CS=0:PI=0:FL=0:KA=0:KD=0:
- 4140 FOR K=1 TO V(18)
- 4150 PRINT K
- 4160 IF (K-V(6))>0 THEN KA=1 ELSE KA=0
- 4180 IF F=1 THEN 4240
- 4190 IF FL=-1 THEN F=1:F1=F:GOTO 4240
- 4200 IF V(6) > K THEN F=0:GOTO 424
- 4210 F=K-V(6)
- 4220 F1=0
- 4230 FL=-1
- 4240 E1(K)=F*V(11)*(1+V(13)/100)^(K-1)
- 4250 EX(K)=F*V(12)*(1+V(14)/100)^K
- 4260 KD=KD+KA
- 4270 IF KD=0 OR KD>15 THEN 4290 ' BYPASS DEPRECIATION
- 4280 D(K)=DP(1,KD)*V(19)+V(20)*DP(2,KD)+V(21)*DP(3,KD)+V(22)*DP(4,KD)+V(23)/15
- 4290 E2(K)=E1(K)-D(K)-EX(K)-IP(K)
- 4300 IF TL=0 AND K>1 THEN 4470 ' CHECK FOR LOSS TO CARRY FORWARD
- 4310 IF E2(K) < 0 THEN TL=TL+(-1*E2(K)):T1(K)=0:T2(K)=0:GOTO 4580
- 4320 IF E2(K) > TL THEN 4350
- 4330 TL=TL-(-1*E2(K))):T1(K)=0:T2(K)=0:PRINT TL
- 4340 GOTO 4580
- 4350 E2=E2(K)-TL:TL=0
- 4360 T2(K)=V(16)/100*E2 ' STSTE TAX PAID
- 4370 T1(K)=V(15)/100*(E2-T2(K)) ' FED TAX
- 4380 IF TC=0 THEN 4580
- 4390 IF TC< T1(K) THEN 4430 ELSE TC(K) = T1(K)
- 4400 TC=TC-T1(K)
- 4410 T1(K)=0
- 4420 GOTO 4580
- 4430 TC(K)=TC
- 4440 T1(K)=T1(K)-TC
- 4450 TC=0
- 4460 GOTO4580
- 4470 IF E2(K) > 0 THEN T2(K)=V(16)/100*E2(K) ELSE T2(K)=0
- 4480 IF E2(K) > 0 THEN T1(K)=(E2(K)-T2(K))*V(15)/100 ELSE T1(K)=0
- 4490 IF E2(K) < 0 THEN TL=E2(K)*(-1):GOTO 4580
- 4500 IF TC =0 THEN 4580
- 4510 IF TC < T1(K) THEN 4550 ELSE TC(K)=T1(K)
- 4520 TC=TC-T1(K)
- 4530 T1(K)=0
- 4540 GOTO 4580
- 4550 TC(K)=TC
- 4560 T1(K)=T1(K)-TC
- 4570 TC=0
- 4580 CF(K)=E2(K)-T1(K)-T2(K)+D(K) 'CASH FLOW FOR YEAR K
- 4590 DF(K)=CF(K)*(1+V(17)/100)^-K ' DISCOUNTED CASH FLOW
- 4600 DI(K)=CF(K)*(1+V(25)/100)^-K
- 4610 DY(K)=DI(K)*(1+V(17)/100)^-K
- 4620 SF(K)=E1(K)-EX(K)-T1(K)-T2(K)-IP(K)-IZ(K)-A1(K)-A2(K) 'SPENDABLE CASH FLOW
- 4630 IF SF(K)<0 THEN SP=SP+(-1)*SF(K):CS=CS+1
- 4650 PV=DF(K)+PV
- 4660 PI=DY(K)+PI
- 4670 NEXT K
- 4680 RETURN
- 5060 ' ERROR SUBROUTINE
- 5070 CLS
- 5080 PRINT:PRINT:PRINT TAB20)"***********************************"
- 5090 PRINT TAB(27)"INPUT DATA ERROR!!!"
- 5100 IF V(18)> 30 THEN PRINT"MAXIMUM LIFE ALLOWED IS 30 YEARS !"
- 5110 IF V(19)+V(20)+V(21)+V(22)>V(1) THEN PRINT"DEPRECIATION TAKEN EXCEEDES VALUE OF INVESTMENT !"
- 5120 PRINT:PRINT:PRINT TAB(30)"PLEASE CORRECT DATA ENTRY !!"
- 5130 FOR KQ=1 TO 400
- 5140 NEXT KQ
- 5150 RETURN
- 5160 ' REMEMBER DATA ENTRY SUBROUTINE
- 5170 P1=1
- 5180 IZ=1:IX=9
- 5190 I=IZ:IQ=1
- 5200 CLS
- 5210 PRINT TAB(15)"INVESTMENT ANALYSIS DATA INPUT PAGE ";P1
- 5220 PRINT:PRINT"PROVIDE DATA ASKED FOR . CURRENT VALE (IF ANY) SHOWN IN ()."
- 5230 PRINT"IF YOU WISH TO CORRECT A PREVIOUS ANSWER, ENTER `C'."
- 5240 PRINT"IN ORDER TO GO TO THE NEXT PAGE, ENTER `>'."
- 5250 PRINT STRING$(63,"=")
- 5260 IF I=IZ THEN 5280 ELSE FOR IQ=IZ TO I-1
- 5262 PRINT USING F$(IQ);V(IQ)
- 5264 NEXT IQ
- 5270 IF I>I9 THEN 5400
- 5280 PRINT USING F$(I);V(I);
- 5290 V$=""
- 5300 INPUT V$
- 5310 IF V$="" THEN 5380
- 5320 IF V$=">" THEN 5540 ELSE IF V$="C" THEN 5670
- 5330 IF V$="<" THEN 5610
- 5340 V(I)=VAL(V$):V$=""
- 5350 IF V(18)> 30 THEN GOSUB 5060
- 5352 GOTO 5200
- 5360 IF V(19)+V(20)+V(21)+V(22)>V(1) THEN GOSUB 5060
- 5362 GOTO 5200
- 5370 IF I=19 THEN 5400
- 5380 I=I+1:IF I<IX THEN 5200
- 5390 GOTO 5490
- 5400 PRINT STRING$(63,"=")
- 5410 PRINT"END OF DATA ENTRY. PLEASE CHECK DATA ON THIS PAGE."
- 5420 PRINT"TO CORRECT DATA, ENTER `C'. TO REVIEW PREVIOUS PAGE, ENTER `<'."
- 5430 PRINT"TO REVIEW ALL DATA, ENTER `R'. TO START CALCULATIONS, ENTER `G'."
- 5440 Y$=""
- 5450 INPUT Y$
- 5460 IF Y$= "G" OR Y$="y" THEN RETURN ELSE IF Y$="C" OR Y$="c" THEN 5500 ELSE IF Y$="<" THEN 5610
- 5470 IF Y$<> "R" OR Y$<>"r" THEN PRINT"PLEASE ENTER ONLY A `C', <, `R', OR `G'.":GOTO 5410
- 5480 CLS
- 5490 PRINT:PRINT TAB(15)"END OF PAGE "P1". REVIEW DATA ENTER `>' TO GO TO NEXT PAGE"
- 5500 PRINT TAB(15)"ENTER `C' TO CORRECT ENTRY AND `R' TO RETURN TO MAIN PROGRAM."
- 5510 Y$="":INPUT Y$
- 5520 IF Y$="<" THEN 5610
- 5530 IF Y$=">" THEN 5540 ELSE IF Y$ ="C"OR Y$="c" THEN 5670 ELSE IF Y$ <>"R" OR Y$<>"r" THEN PRINT"PLEASE ENTER ONLY A >, `C', OR `R'.":GOTO 5490
- 5540 '
- 5550 IF P1=PM THEN 5400
- 5560 P1=P1+1
- 5570 IZ=IZ+9
- 5580 IX=IZ+9
- 5590 I=IZ:IQ=IZ
- 5600 GOTO 5200
- 5610 IF P>1 THEN P1=P1-1 ELSE GOT0 5200
- 5620 IF P1=1 THEN IZ=1:IX=8
- 5630 IF P1=2 THEN IZ=9:IX=16
- 5640 IF P1=3 THEN IZ=17:IX=24
- 5650 IF I>IZ THEN I=IX
- 5660 GOTO 5200
- 5670 ' CORRECTION PAGE
- 5680 CLS
- 5690 V$=""
- 5700 PRINT:PRINT TAB(20)"ROUTINE TO CORRECT ENTRY ON PAGE "P1
- 5710 PRINT STRING$(63,"=")
- 5720 IF IX > 9 THEN IX=19
- 5730 FOR J=IZ TO IX
- 5740 PRINT J
- 5750 PRINT USING F$(J);V(J)
- 5760 NEXT J
- 5770 PRINT STRING$(63,"=")
- 5780 PRINT:PRINT"IF YOU WANT TO CORRECT ALL ENTRIES, ENTER `A'"
- 5790 PRINT"ENTER ITEM NUMBER TO CORRECT."
- 5792 INPUT"ENTER `R' TO RETURN ";YI$
- 5800 IF YI$="A" OR YI$="a" THEN GOTO 5160
- 5810 IF YI$="R" OR YI$="r" THEN 5880 ELSE J=VAL(YI$)
- 5820 IF J>IX THEN PRINT"NOT ON THIS PAGE.":GOTO 5790
- 5830 IF J=< 0 THEN J=IX
- 5840 PRINT USING F$(J);V(J):INPUT"ENTER CORRECT VALUE, `C' IF OK.";C$
- 5850 IF C$="C" OR C$="c" THEN GOTO 5670 ELSE V(J)=VAL(C$)
- 5860 GOTO 5670
- 5870 END
- 5880 '
- 5890 GOTO 5200
- 5900 IF V(24)< THEN 1984 THEN V(24)=1984
- 5910 ' READ IN NEW DEPRECIATION
- 5920 FOR I=1 TO 4
- 5930 IF I=1 THEN JM=3 ELSE IF I=2 THEN JM=5 ELSE IF I=3 THEN JM=10 ELSE JM=15
- 5940 FOR J=1 TO JM
- 5950 READ DP(I,J)
- 5960 DP(I,J)=DP(I,J)/100
- 5970 NEXT J
- 5980 NEXT I
- 5990 IF V(24)< 1987 THEN RETURN
- 6000 JZ=JZ+1
- 6010 IF V(24)= 1987 AND JZ=1 THEN 5920 ELSE IF V(24)= 1987 THEN RETURN
- 6020 IF JZ<= 2 THEN 5920 ELSE RETURN
- 6030 ' rember depreciation for 3 years
- 6040 DATA 25,38,37
- 6050 ' depreciation for 5 years
- 6060 DATA 15,22,21,21,21
- 6070 ' depreciation for 10 years
- 6080 DATA 8,14,12,10,10,10,9,9,9,9
- 6090 ' data for 15 years
- 6100 DATA 5,10,9,8,7,7,6,6,6,6,6,6,6,6,6
- 6110 ' data for 1987
- 6120 DATA 29,47,24,18,33,25,16,8
- 6130 DATA 9,19,16,14,12,10,8,6,4,2,
- 6140 DATA 6,12,12,11,10,9,8,7,6,5,4,4,3,2,1
- 6150 ' data for 1988
- 6160 DATA 33,45,22,20,32,24,16,8
- 6170 DATA 10,18,16,14,12,10,8,6,4,2
- 6180 DATA 7,12,12,11,10,9,8,7,6,5,4,3,3,2,1
- 6190 END
- 6200 ' initial subroutine
- 6210 F$(1)="TOTAL AMOUNT OF INVESTMENT $$#,######.##"
- 6220 F$(2)="AMOUNT OF FIRST LOAN $$#,######.##"
- 6230 F$(3)="YEARLY INTEREST RATE FOR 1ST. LOAN ##.##%"
- 6240 F$(4)="LIFE OF FIRST LOAN ##.## YEARS"
- 6250 F$(5)="NUMBER OF LOAN PAYMENTS PER YEAR ##"
- 6260 F$(6)="YEARS FROM INVESTING BEFORE REC. INCOME #.## YEARS"
- 6270 F$(7)="AMOUNT OF 2ND. LOAN $$#,######.##"
- 6280 F$(8)="YEARLY INTEREST RATE FOR 2ND. LOAN ##.##%"
- 6290 F$(9)="LIFE OF 2ND. LOAN ##.## YEARS"
- 6300 F$(10)="# OF PAYMENTS PER YEAR 2ND. LOAN ##"
- 6310 F$(11)="ESTIMATED ANNUAL INCOME $$#,######.##"
- 6320 F$(12)="ESTIMATED ANNUAL EXPENSES $$#,######.##"
- 6330 F$(13)="ESCALATION % FOR INCOME ##.##%"
- 6340 F$(14)="ESCALATION % FOR EXPENSES ##.##%"
- 6350 F$(15)="FEDERAL INCOME TAX RATE ##.##%"
- 6360 F$(16)="STATE INCOME TAX RATE ##.##%"
- 6370 F$(17)="DISCOUNT RATE ##.##%"
- 6380 F$(18)="LIFE OF INVESTMENT ##.## YEARS"
- 6390 F$(19)="VALUE OF THREE YEAR PROPERTY $$#,######.##"
- 6400 F$(20)="VALUE OF 5 YEAR PROPERTY $$#,######.##"
- 6410 F$(21)="VALUE OF 10 YEAR PROPERTY $$#,######.##"
- 6420 F$(22)="VALUE OF 15 YEAR PROPERTY $$#,######.##"
- 6430 F$(23)="VALUE OF ST LINE REAL-ESTATE $$#,######.##"
- 6440 F$(24)="YEAR PROPERTY PLACED IN SVC ####"
- 6450 F$(25)="INFLATION RATE ##.##%"
- 6460 RETURN
- 6470 CLS
-